//
//  M4ProtocolViewController.swift
//  M4
//
//  Created by YuChuang on 2024/8/7.
//

import UIKit
import ActiveLabel
import Toast_Swift

class M4ProtocolViewController: M4BaseViewController {
    
    
    @IBOutlet weak var M4CheckButton: UIButton!
    
    @IBOutlet weak var M4AgreeLabel: ActiveLabel!
    
    @IBOutlet weak var M4ScrollView: UIScrollView!
    override func viewWillAppear(_ animated: Bool) {
        navigationController?.navigationBar.isHidden = true
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        navigationController?.navigationBar.isHidden = false
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
                
        view.backgroundColor = COLOR_000000.withAlphaComponent(0.3)
        M4CheckButton.setImage(UIImage(named: "icon_choose"), for: .normal)
        M4CheckButton.setImage(UIImage(named: "icon_choose_pre"), for: .selected)
        M4CheckButton.isSelected = true
        
        let firstHandle = ActiveType.custom(pattern: "《Contrato de préstamo》")
        let secondHandle = ActiveType.custom(pattern: "《Política de privacidad》")
        M4AgreeLabel.enabledTypes = [firstHandle, secondHandle]
        M4AgreeLabel.text = "He leído y estoy de acuerdo《Contrato de préstamo》y《Política de privacidad》"
        M4AgreeLabel.customColor[firstHandle] = COLOR_00479D
        M4AgreeLabel.customColor[secondHandle] = COLOR_00479D
        M4AgreeLabel.handleCustomTap(for: firstHandle) { element in
            let htmlVC = M4HtmlWebViewController()
            htmlVC.M4WebTitle = "Contrato de préstamo"
            htmlVC.M4WebUrl = M4NetworkAPI.m4htmlPath.rawValue + "/asdasd?vcxoPPo=&sesaPPOs=0"
            htmlVC.M4OpenPrivacy = true
            self.navigationController?.pushViewController(htmlVC, animated: true)
        }
        M4AgreeLabel.handleCustomTap(for: secondHandle) { element in
            let htmlVC = M4HtmlWebViewController()
            htmlVC.M4WebTitle = "Política de privacidad"
            htmlVC.M4WebUrl = M4NetworkAPI.m4htmlPath.rawValue + "/nafvsdahgv"
            self.navigationController?.pushViewController(htmlVC, animated: true)
        }
        
        M4SetLable1()
        M4SetLabel2()
    }
    
    @IBAction func M4IsCheck(_ sender: UIButton) {
        sender.isSelected = !sender.isSelected
        sender.M4EventUnavailable = false
    }
    
    @IBAction func M4ExitApp(_ sender: UIButton) {
        exit(0)
    }
    
    @IBAction func M4EnterApp(_ sender: UIButton) {
        if M4CheckButton.isSelected {
            M4UserDataManager.m4UserShare.M4ProtocolAgree = true
            M4LimitVerification().M4LimitRequest {
                DispatchQueue.main.async {
                    if M4UserDataManager.m4UserShare.M4Token == "" {
                        AppDelegate.M4JumpLoginPage()
                    }
                    else {
                        AppDelegate.keyWindow()?.rootViewController = M4TabBarViewController()
                    }
                }
            }
        }
        else {
            self.view.makeToast("Lea y acepte la divulgación de información", position: .center)
        }
        sender.M4EventUnavailable = false
    }
    
    lazy var M4Label1: ActiveLabel = {
        let label = ActiveLabel()
        label.numberOfLines = 0
        label.font = UIFont.systemFont(ofSize: 12, weight: .regular)
        label.textColor = COLOR_333333
        M4ScrollView.addSubview(label)
        label.snp.makeConstraints { make in
            make.left.equalTo(M4ScrollView).offset(8)
            make.right.equalTo(M4ScrollView).offset(-8)
            make.width.equalTo(M4ScreenWidth - 30 - 16)
            make.top.equalToSuperview()
        }
        
        return label
    }()
    
    lazy var M4Label2: UILabel = {
        let label = UILabel()
        label.numberOfLines = 0
        M4ScrollView.addSubview(label)
        label.snp.makeConstraints { make in
            make.left.right.equalTo(M4Label1)
            make.top.equalTo(M4Label1.snp.bottom).offset(16)
            make.bottom.equalTo(M4ScrollView.snp.bottom).offset(-8).priority(.high)
        }
        
        return label
    }()
}

import SafariServices

extension M4ProtocolViewController {
    
    func M4SetLable1() {
        let str1 = "https://webapps.condusef.gob.mx/SIPRES/jsp/home_publico.jsp?idins=16272"
        M4Label1.enabledTypes = [.url]
        M4Label1.text = "BLANKFEIN CAPITAL, S.A. DE C.V., SOFOM, E.N.R.es una empresa legalmente registrada en México. Blankfein Préstamos es un producto de BLANKFEIN CAPITAL, S.A. DE C.V., SOFOM, E.N.R. Para mayores detalles, Invitamos a los usuarios a visitar \(str1) para consultar la información detallada del registro de la empresa."
        M4Label1.handleURLTap { url in
            self.M4OpenSafari(string: url.absoluteString)
        }
    }
    
    func M4OpenSafari(string: String) {
        if let url = URL(string: string) {
            let safariController = SFSafariViewController(url: url)
            present(safariController, animated: true)
        }
    }
    
    func M4SetLabel2() {
        let fullString = "Para finalizar el proceso de solicitud de un préstamo, al utilizar Blankfein Préstamos, requeriremosautorizaciones desde su terminal y obtendremos acceso a sus datos personales. Deslice haciaarriba para obtener información detallada.\n\n1、IDFA:\nEn base a su consentimiento, empleamos estos datos para mostrarle publicidad personalizada,proporcionar contenido valioso y mejorar la eficacia de nuestras campañas publicitarias.\n\n2、Información del contacto:\nBlankfein Préstamos solo extrae los primeros dos contactos (nombre, detalles de contacto y relación) queusted proporciona en la sección de información de contacto, sin acceder a su agenda completa.Esta información es utilizada para verificar la identidad de los prestatarios y prevenir el fraude.Sus datos se almacenan en nuestro servidor cifrado en https://apio.blankfeincapitalmx.com y no serevelan a terceros sin su autorización.\n\n3、Ubicación:\nAl registrarse para una cuenta de Blankfein Préstamos y solicitar un préstamo, recopilamos yalmacenamos su ubicación aproximada en tiempo real en nuestros servidores cifrados con HTTPSen https://apio.blankfeincapitalmx.com para mejorar su experiencia. Puede desactivar esta funciónen su dispositivo, aunque podría afectar nuestros servicios. Le aseguramos que su informaciónno se comparte con terceros.\n\n4、Biometría:\nLos datos biométricos, obtenidos a través del reconocimiento facial, se utilizan para autenticar suidentidad durante la evaluación de su solicitud. Este proceso, que dura menos de 8 segundos,borra todos los datos una vez verificada su identidad.\n\n5、Cámara:\nAcceder a la cámara nos permite escanear documentos KYC necesarios y realizar el proceso deKYC por video, confirmando que la solicitud es presentada por usted en persona y evitandousurpaciones de identidad o fraudes.\n\n6、Álbum de fotos:\nDurante la verificación de su información de identificación, puede seleccionar una foto de sudocumento del álbum de su teléfono para una verificación rápida. No accedemos a sus álbumes,solo a la foto seleccionada, que se carga cifrada en https://apio.blankfeincapitalmx.com yverificada de manera interna.\n\n7、Información de identificación del dispositivo:\nAl inscribirse y solicitar un préstamo, es esencial recopilar datos del dispositivo iOS, como UDID,modelo y versión. Esta información se cifra y se almacena en https://apio.blankfeincapitalmx.com,manteniendo su privacidad y sin compartirla sin su consentimiento.\n\n8、Información personal:\nBlankfein Préstamos recopilará la información personal que usted introduzca voluntariamente en lasección correspondiente, incluyendo su nombre, nivel educativo, lugar de residencia, ocupacióny ingresos. Todos estos datos se cifrarán y almacenarán en https://apio.blankfeincapitalmx.com, yno serán compartidos con terceros sin su permiso."
        let attributedText = NSMutableAttributedString(string: fullString)
        attributedText.setAttributes([
            .foregroundColor : COLOR_333333,
            .font : UIFont.systemFont(ofSize: 12, weight: .regular)
        ], range: NSMakeRange(0, fullString.count))
        let boldTitles: [String: CGFloat] = [
            "1、IDFA:": 12,
            "2、Información del contacto:": 12,
            "3、Ubicación:": 12,
            "4、Biometría:": 12,
            "5、Cámara:": 12,
            "6、Álbum de fotos:": 12,
            "7、Información de identificación del dispositivo:": 12,
            "8、Información personal:": 12
        ]
        for (title, fontSize) in boldTitles {
            if let range = fullString.range(of: title) {
                let nsRange = NSRange(range, in: fullString)
                attributedText.addAttributes([.font: UIFont.systemFont(ofSize: fontSize, weight: .bold)], range: nsRange)
            }
        }
        M4Label2.attributedText = attributedText
    }
}
